package work.base.data.queue;

import java.util.*;

/**
 * 优先级队列PriorityQueue的使用
 */
public class PriorityQueueTest {

    static Comparator<Integer> cmp = new Comparator<Integer>() {
        public int compare(Integer e1, Integer e2) {
            return e2 - e1;
        }
    };

    public static void main(String[] args) {
        //不用比较器，默认升序排列
        Queue<Integer> q = new PriorityQueue<>();
        q.add(3);
        q.add(2);
        q.add(4);
        while(!q.isEmpty())
        {
            System.out.print(q.poll()+" ");
        }
        /**
         * 输出结果
         * 2 3 4
         */
        //使用自定义比较器，降序排列
        Queue<Integer> qq = new PriorityQueue<>(cmp);
        qq.add(3);
        qq.add(2);
        qq.add(4);
        while(!qq.isEmpty())
        {
            System.out.print(qq.poll()+" ");
        }
        /**
         * 输出结果
         * 4 3 2
         */

        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("AAA");

        ArrayDeque arrayDeque = new ArrayDeque(10);
        arrayDeque.addFirst("AAA");
    }


}
